#include <iostream>
#include <signal.h>

void handler(int signo)
{
    std::cout << "get a sig: " << signo << std::endl;
    exit(1);
}

int main()
{
    struct sigaction act, oact;
    act.sa_handler = handler;

    //执行处理函数时，除了将该处理函数对应信号屏蔽外
    //还将sa_mask位图中设置的bit位都屏蔽
    sigemptyset(&act.sa_mask);
    sigaddset(&act.sa_mask, 3);
    sigaddset(&act.sa_mask, 4);
    sigaddset(&act.sa_mask, 5);
    sigaddset(&act.sa_mask, 6);
    sigaddset(&act.sa_mask, 7);

    ::sigaction(2, &act, &oact);

    while(true)
    {
        pause();
    }

    return 0;
}
